Crate const_oid[−][src]
Expand description
Const-friendly X.660 Object Identifier (OID) library with support for
heapless no_std
(i.e. embedded) environments.
About OIDs
Object Identifiers (a.k.a. OIDs, represented by this library as the
ObjectIdentifier
struct) are an International Telecommunications Union
(ITU) and ISO/IEC standard for naming any object, concept, or “thing”
with a globally unambiguous persistent name.
OIDS are defined in the ITU’s X.660 standard.
The following is an example of an OID, in this case identifying the
rsaEncryption
algorithm:
1.2.840.113549.1.1.1
For more information, see: https://en.wikipedia.org/wiki/Object_identifier
Implementation
This library supports parsing OIDs in const contexts, e.g.:
use const_oid::ObjectIdentifier;
pub const MY_OID: ObjectIdentifier = ObjectIdentifier::new("1.2.840.113549.1.1.1");
The OID parser is implemented entirely in terms of const fn
and without the
use of proc macros.
Additionally, it also includes a const fn
OID serializer, and stores the OIDs
parsed from const contexts encoded using the BER/DER serialization
(sans header).
This allows ObjectIdentifier
to impl AsRef<[u8]>
which can be used to
obtain the BER/DER serialization of an OID, even one declared const
.
Additionally, it impls FromStr
and TryFrom<&[u8]>
and functions just as
well as a runtime OID library.
Minimum Supported Rust Version
This crate requires Rust 1.55 at a minimum.
Minimum supported Rust version may be changed in the future, but it will be accompanied with a minor version bump.